Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

149
Vistas
Mi sitio web tiembla cuando se desplaza, mientras usa la función "onScroll" para cambiar el tamaño del encabezado y la barra de navegación

Hola a todos,

Estoy trabajando en el sitio web de un pequeño proyecto escolar, y quiero hacer que mi encabezado y barra de navegación cambien cuando me desplace más allá de un punto determinado.

Hasta ahora todo bien, me las arreglé para hacer eso. Sin embargo, hay un punto en el que el sitio web comienza a enloquecer y cambia muy rápido entre los dos estados que configuré, como se puede ver aquí:

https://youtu.be/1GBXIbESnu0

Además, la velocidad del desplazamiento se ralentiza significativamente al llegar al punto de cambio/donde se asusta, aunque supongo que simplemente se debe a que la función se invoca muchas veces.

Como se puede ver en el código, intenté agregar algún tipo de enfriamiento en la función, esto realmente no funcionó (lo probé de algunas maneras más que la que está actualmente en el código).

Usaré el encabezado como ejemplo de código, ya que el encabezado y la barra de navegación se vuelven locos de la misma manera.

HTML

 <header id="header"> <div> <h1 class="invisible">----</h1> </div> </header>

CSS

 header{ background-color: #227C9D; position: sticky; top: 0; z-index: 2; height: 100px; transition: 0.2s; }

JavaScript

 var header; var nav; var delay = 800; var lastChange = 0; function scrollFunction() { header = document.getElementById("header"); nav = document.getElementById("nav"); if (document.body.scrollTop > 50 ) { if (lastChange >= (Date.now())) return; header.style.height = "50px"; nav.style.fontSize = "20px"; } else { if (lastChange >= (Date.now())) return; header.style.height = "100px"; nav.style.fontSize = "40px"; } lastChange = Date.now(); }

Código completo: https://github.com/DefenetlyNotSimon/InfoWebsiteProjekt/blob/beta/styles.css

Si alguien tiene alguna idea o solución, se lo agradecería :D

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda